咨询热线:

17661095540

联系QQ:

2863379292

官方微信:

移动开发:序列化与反序列化Parcelable和Serializable浅析

微信营销

导读:在日常的应用开发中,我们可能需要让某些对象离开内存空间,存储到物理磁盘,以便长期保存,同时也能减少对内存的压力,而在需要时再将其从磁盘读取到内存,比如将某个特定的对象保存到

发表日期:2019-12-10

文章编辑:兴田科技

浏览次数:7100

标签:

在日常的应用开发中,我们可能需要让某些对象离开内存空间,存储到物理磁盘,以便长期保存,同时也能减少对内存的压力,而在需要时再将其从磁盘读取到内存,比如将某个特定的对象保存到文件中,隔一段时间后再把它读取到内存中使用,那么该对象就需要实现序列化操作,在Java中可以使用Serializable接口实现对象的序列化,而在android中既可以使用Serializable接口实现对象序列化也可以使用parcelable接口实现对象序列化,但是在内存操作时更倾向于实现parcelable接口,这样会使用传输效率更高效。接下来我们将分别详细地介绍这样两种序列化操作。

了解序列化与反序列

序列化

由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。

反序列化

反序列化恰恰是序列化的反向操作,也就是说,把已存在在磁盘或者其他介质中的对象,反序列化(读取)到内存中,以便后续操作,而这个过程就叫做反序列化。

概括性来说序列化是指将对象实例的状态存储到存储媒体(磁盘或者其他介质)的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。

实现序列化的必要条件

一个对象要实现序列化操作,该类就必须实现了Serializable接口或者parcelable接口,其中Serializable接口是在java中的序列化抽象类,而parcelable接口则是android中特有的序列化接口,在某些情况下,parcelable接口实现的序列化更为高效,关于它们的实现案例我们后续会分析,这里只要清楚知道实现序列化操作时必须实现Serializable接口或者parcelable接口之一即可。

序列化的应用情景

主要有以下情况(但不限于以下情况)

1)内存中的对象写入到硬盘;

2)用套接字在网络上传送对象;

3)通过RMI(RemoteMethodInvoke远程方法调用)传输对象;

Serializable

Serializable是java提供的一个序列化接口,它是一个空接口,专门为对象提供标准的序列化和反序列化操作,使用Serializable实现类的序列化比较简单,只要在类声明中实现Serializable接口即可,同时强烈建议声明序列化标识。

parcelable

鉴于Serializable在内存序列化上开销比较大,而内存资源属于android系统中的稀有资源(android系统分配给每个应用的内存开销都是有限的),为此android中提供了parcelable接口来实现序列化操作,parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用parcelable,如通过Intent在activity间传输数据,而parcelable的缺点就使用起来比较麻烦。

相关推荐

更多新闻

  • 8-28

    2023

    微信营销 / 2023-08-28

    南阳网站建设:为您的业务打造专业网站

    随着互联网的普及,一个功能完善的网站可以帮助您扩大市场覆盖范围。通过南阳网站建设,您可以将产品或服务推广到更广泛的受众群体。不论是本地市场还是国际市场,一个专业的网站可以帮助您吸引更多的潜在客户和业务机会。

    View details

  • 8-23

    2023

    微信营销 / 2023-08-23

    上杭网站开发- 提升业务增长的关键

    相比传统的市场营销方式,上杭网站开发可以提供更高效和更经济的营销方式。通过搜索引擎优化(SEO)、内容营销和社交媒体推广等手段,企业可以提高营销效果并降低市场推广成本。

    View details

  • 8-25

    2023

    微信营销 / 2023-08-25

    克孜勒苏网站开发- 完美展现您的在线品牌形象的方式

    随着越来越多的人使用移动设备浏览互联网,克孜勒苏网站开发必须采用响应式设计。这意味着您的网站会根据访问设备的屏幕大小和分辨率自动调整布局和元素。这样可以确保您的网站在不同设备上都能提供良好的用户体验,并避免让访客感到困惑或挫败。

    View details

  • 8-28

    2023

    微信营销 / 2023-08-28

    商水网络推广——推动您的业务增长的关键

    商水网络推广是指利用互联网和各种在线平台来宣传和推广您的产品和服务。这包括但不限于搜索引擎优化(SEO),内容营销,社交媒体推广,电子邮件营销等。通过使用商水网络推广,您可以将您的业务推向更广泛的受众,增加品牌知名度,并促进销售增长。

    View details